iT邦幫忙

2025 iThome 鐵人賽

DAY 1
0
DevOps

60天從零開始學DevSecOps系列 第 2

Day 2 -Git是超級英雄?

  • 分享至 

  • xImage
  •  

如題,Day2就是要來講Git 簡單介紹

DevSecOps 之路的第一步,先把專案推上雲端,才能開始玩自動化與安全掃描。
本科生就跳過今天吧~怕會看到睡著
https://ithelp.ithome.com.tw/upload/images/20250815/20171891YkkTJxsqsp.png

前提

說到這個Git,要先提到兩個東西:GitHub 跟 GitLab。
這兩個差不多就像是雲端的「專案養老院」,把你的程式碼送過去,它們會幫你好好照顧,還能隨時叫出來看歷史回顧,看看你三年前的code寫的有多醜,以及一個專案可以方便所有人上去維護。

那GitHub vs GitLab 恩怨就不要問我了,畢竟他們的定位些許不同
下面兩篇文章是別人的介紹我就放這了,自取


所以git到底是做什麼呢?

https://ithelp.ithome.com.tw/upload/images/20250814/20171891YheqRJypcS.jpg

Git是由大名鼎鼎囉,反正我也是網路找的(google講的比我還好)

想像一下你在寫專題報告的時候,有時候寫一寫發現「啊…寫錯方向了!」
按照我以前的習慣,就是:

  • 開一個新資料夾叫 報告_1

  • 隔天再開一個叫 報告_2

  • 一週後出現 報告_final_v3_OK

甚至最後就是無限final XD

這在你自己知道命名規則的情況下還好,
但如果是團隊合作呢?

試想一下另一個組員打開terminal

$cd C:\Users\報告
$ls
報告_改版
報告_改版2
報告_final
報告_final_v3_OK
報告_final_v3_OK修正版

你看他會不會靈魂出竅?

下次小組報告,你拿了一份報告_final版本
結果報告才發現其他人拿的不是這個版本,
內容全不一樣,甚至有人多了一整章你不懂的技術?
那畫面蠻尷尬 XD

如何解決如此慘案呢?
就需要 版本控制(Version Control)
它的任務就是:

  1. 幫你記錄每一次檔案的修改
  2. 讓所有人都能同步到同一份最新版本
  3. 隨時回到過去版本,不怕誤刪
  4. 把資料夾從「考古現場」變成「乾淨整齊的歷史紀錄」

而這位版本控制界的超級英雄,就是我們今天的主角——Git。


Git核心概念、玩法?

想像一下你的專案是一條時間軸,每一次你按下 commit,就像在遊戲裡存檔。

  1. 存檔(Commit)
──●──●──●──●──
  v1  v2  v3  v4
  • 每個小圓點就是一次 commit(存檔點)。
  • 你可以在任何時候回到舊的版本,就像回到昨天還沒踩到 Bug 的快樂時光。

講到這個就要講到最近在玩chain together
我真的很佩服,沒有存檔在玩的人..
我覺得玩這種跑酷,我一定要有存檔點,不然我會玩到崩潰:D

  1. 分支(Branch)

有時候你想嘗試新功能(例如報告加一章遊玩chain together的心得),
但又怕毀掉原本的版本,這時就可以開分支。

main:    ──●──●──●──●──
                 \
chain together:●──●──
  • main 分支是主線劇情
  • chain together 分支是支線任務(隨時可以合回主線)

Git 就像你開了平行宇宙去亂玩,玩爛了刪掉就好,不會影響現實世界。

  1. 合併(Merge)

當你在分支上完成了新功能,並且確認沒有炸掉主線,就可以把它合併回去。

main: ──●──●──●─────●──
                 \  /
chain together:  ●──●

合併時如果兩邊同時改了同一行,就會出現衝突(Conflict)
這時候 Git 會說:「我不知道你要用誰的版本,自己決定吧。」

  1. 回溯(Reset / Revert)

如果你在某次提交中加了一行會把專案毀掉的程式碼,不用刪檔案重來,直接回到前一個 commit 就好。

──●──●──●  ← 回到這裡

Git 就像是 Ctrl+Z 的進化版,能一口氣回到幾天前,
而且連當時的檔案內容、修改紀錄都一併復原。
其實蠻爽的,無法想像沒有Ctrl+Z的生活..

明天接著安裝Git,介紹他的用法


上一篇
Day 1 – 前言:幹嘛花 30 天來學這鬼 DevSecOps?
下一篇
Day 3 - 召喚超級英雄:Git 安裝
系列文
60天從零開始學DevSecOps8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言